A video codec is a device that enables video compression and/or decompression for digital video. There is a complex balance between the video quality, the quantity of the data needed to represent it (also known as the bit rate), the complexity of the encoding and decoding algorithms, robustness to data losses and errors, ease of editing, random access, the state of the art of compression algorithm design, end-to-end delay, and a number of other factors.
Video codecs seek to represent a fundamentally analog data set in a digital format. Since the design of analog video signals, which represent luma and color information separately, a common first step in image compression in codec design is to represent and store the image in a YCbCr color space. The conversion to YCbCr provides the following two benefits: first, the conversion improves compressibility by providing de-correlation of the color signals; and second, the conversion separates the luma signal, which is perceptually much more important, from the chroma signal, which is less perceptually important and which can be represented at a lower resolution to achieve more efficient data compression.
The decoding process is comprised of performing, to the extent possible, an inversion of each stage of the encoding process. The one stage that cannot be exactly inverted is the quantization stage. There, a best-effort approximation of inversion is performed. This part of the process is often called “inverse quantization” or “de-quantization”, although quantization is an inherently non-invertible process.
The traditional method of encoding video includes decomposing a frame with respect to a simple movement in a reference and some residue. Turning to FIG. 1, a traditional encoding method is indicated generally by the reference numeral 100. The encoding method 100 involves a frame 2 (f2 at time t2) to be encoded, a (reference) frame 1 (f1 at time t1), and some residue. The frame 2 (f2 at time t2) is encoded using the reference to frame 1 (f1 at time t1) and the residue. Traditional hybrid video codecs such as the International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) Moving Picture Experts Group-4 (MPEG-4) Part 10 Advanced Video Coding (AVC) Standard/International Telecommunication Union, Telecommunication Sector (ITU-T) H.264 Recommendation (hereinafter the “MPEG-4 AVC Standard”) are based on this principle. Blocks are intra or inter predicted, and then the typical process of transform, quantization, entropy coding, and potentially, some filtering, is applied.
Video coding is a very broad field and there are decades of research on the topic. A variety of techniques have been applied to it. The recent emergence of compressive sensing has provided yet another tool to use in this problem. For example, in one prior art approach, compressive sensing is used as a mode to encode a data block. However, this approach still relies on the traditional scheme and introduces compressive sensing as a side method within the system.